from matplotlib import pyplot as plt

plt.rcParams[u'font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  # 设置正常显示符号

# 准备数据
names = ['西班牙', '美国', '意大利', '瑞士', '法国',
         '土耳其', '加拿大', '智利', '沙特阿拉伯']
values = [3861, 2614, 2275, 819, 758, 745, 256, 193, 160]

# 创建画布
plt.figure(figsize=(18, 10), dpi=100)

# 绘制条形图
plt.barh(names, values, height=0.5, color=['r', 'g', 'b', 'c', 'm', 'k', 'orange', 'yellowgreen'])

# 添加文本
dx = max(values) / 200  # 希望文本与条形图有点距离，最大值基本上填满画布的，所以最大值除以200 得到一个合适的差值
for i, value in enumerate(values):
    plt.text(value + dx, i, value)  # 第一第二参数x,y轴，用于定位。第三个参数是要填的文本

# 展示
plt.show()
